const express=require('express');
// 引入body-parser
const bodyparser=require('body-parser');
// 引入cors
const cors=require('cors');
// 引入数据库模块
const db=require('./db/index');
// 引入路由器模块
const users=require('./router/users');
const router = require('./router/users');
// 引入入学考试的路由
const entry_exam=require('./router/entry_exam');
// 引入期中考试的路由
const midterm_exam=require('./router/midterm_exam');
// 引入期末考试的路由
const end_exam=require('./router/end_exam');
// 引入学生信息的路由
const student=require('./router/student');
const app=express();

// 静态文件托管
app.use(express.static("public"));
// 应用bodyparser 将post请求体中的数据挂载到req.body上
app.use(bodyparser.urlencoded({extended:true}));
// 在上面这行代码之后所有的post请求的req.body都能读取到数据
// 使用cors 解决跨域
app.use(cors());
// 使用全局中间件 优先处理一下  确保数据库连接成功
app.use('/',async(req,res,next)=>{
    try{
        await db;
        // 当数据库连接成功之后 放行
        next();
    }catch(e){
        console.log(e);
        res.send('服务器和数据库连接失败');
    }
})
// 应用路由器模块
app.use(users);
app.use(entry_exam);
app.use(midterm_exam);
app.use(end_exam);
app.use(student);




app.listen(8080,err=>{
    if(!err){
        console.log('服务器启动成功！');
    }else{
        console.log(err);
    }
})